02. GPU Workspaces: 如何更好的练习

## 如何更好的练习

下面的这个项目需要很多的数据,即使在 GPU 中,你也可能需要几个小时来训练模型。下面的方法会帮助你更好的完成项目,避免 GPU 使用中的常见问题。

  • ### 长时间保持 Workspace 激活状态
    Workspace 会自动没 30 分钟断开一次链接,包括 深度学习模型训练时也可能断链。因此,你可以使用 workspace_utils.py 这里 来保持你的 Workspace 持续激活。该模块的示例如下。



    注意: 如果 要求过于频繁,可能出现链接错误;重启Jupyter kernal 并 运行 cell 来重置错误。



    注意: 该代码会在训练过程中保持 Workspace 状态处于激活,但是当你的 notebook 运行完成 30 分钟后,你的 workspace 仍旧会终端链接。修改 notebook cells 来在最后一段代码执行完 保存结果,否则,你会损失你的运行结果。

例子: 使用 context manager:

from workspace_utils import active_session

with active_session():
    # do long-running work here

例子: 使用 iterator wrapper:

from workspace_utils import keep_awake

for i in keep_awake(range(5)):
    # do iteration with lots of work here
  • 管理GPU时间

    避免在启用了GPU加速的Workspace项目中浪费GPU时间是非常重要的。在评估深度学习模型时,GPU加速的好处最为有用 - 尤其是在training期间。在大多数情况下,您可以在CPU模式下构建和测试模型(包括数据预处理,定义模型体系结构等),然后激活GPU模式以加速模型训练。

  • ###处理“Out of Memory”错误
    这个问题不是特定于Workspaces,而是PyTorch和Jupyter之间的明显问题,Jupyter在单元格崩溃后报告“内存不足”。只要内核正在运行,Jupyter就会保存对激活对象的引用 - 包括在引发错误之前创建的对象。这可能导致Jupyter尽管不再需要这些对象,但仍然将其长时间保留在内存中。唯一已知的解决方案是:

*减少数据的batch_size

*重置内核并再次运行笔记本电脑单元